User-selectable progress bar threshold triggers and notification by detecting color change

ABSTRACT

Methods and apparatus, including computer program products, implementing and using techniques for providing a notification to a user about the progress of a task running on a digital processing device. A user input identifying a progress indicator for the task running on the digital processing device is received. A user input selecting a threshold value is received. The threshold value indicates a point on the progress indicator at which the user is to be notified about the progress of the task. A notification is provided to the user when the threshold value is reached.

BACKGROUND

This invention relates to installing and using desktop and webapplications on different types of electronic devices. Sometimes a taskrunning within a program on an electronic device, such as a computer, apersonal digital assistant (PDA), a cellular telephone, a televisionset, and so on, might take a while to complete. Examples of common suchtasks include downloading a file, installing a program component, ortransferring a file. A user-friendly program typically provides someindication to the user that the task is occurring, how long the taskmight take, and how much work has already been done. One way ofindicating that work is being done, and to indicate the amount ofprogress, is to use an animated image known as a progress bar.

The progress bar can be formally described as a component in a graphicaluser interface, and is used to convey the progress of a task, such as adownload or file transfer. Often the graphic is accompanied by a textualrepresentation of the progress, typically in a percentage format, whichcan indicate how far along the installation or download has proceeded,such as “53% done”, or something similar. FIG. 1 shows some examples ofprogress indicators.

When a user must wait a large period of time for a progress indicator tocomplete, she often would like to perform a different task or activitywhile she is waiting. For example, a user may go have lunch while theywait for a file to download from the web. Unfortunately, when the useris away from her computer, there is no notification mechanism to let herknow when the download or installation is complete or when a particularpoint in the installation or download has been reached.

SUMMARY

In general, in one aspect, the invention provides methods and apparatus,including computer program products, implementing and using techniquesfor providing a notification to a user about the progress of a taskrunning on a digital processing device. A user input identifying aprogress indicator for the task running on the digital processing deviceis received. A user input selecting a threshold value is received. Thethreshold value indicates a point on the progress indicator at which theuser is to be notified about the progress of the task. A notification isprovided to the user when the threshold value is reached.

The invention can be implemented to include one or more of the followingadvantages. A user can be notified about the progress of one or moretasks, such as, when a task is completed or when the task reaches one ormore preset threshold values, even when the user is not present at thecomputer at which the task is occurring. This can free up significantamounts of time for the user to do other things while waiting for thetask to complete and allow the user to multi-task. Furthermore, insteadof (or in addition to) notifying a user, various system events, such asdownloading or installing a different application, can be triggered whenthe task is completed or has reached the preset value defined by theuser.

The details of one or more embodiments of the invention are set forth inthe accompanying drawings and the description below. Other features andadvantages of the invention will be apparent from the description anddrawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 shows a prior art illustration of some exemplary progress barsthat are used by current various applications to indicate progress of atask.

FIG. 2 is a flowchart showing a process for providing a notification toa user about the progress of a task, in accordance with one embodimentof the invention.

FIG. 3 is a screenshot of a user interface allowing a user to define oneor more thresholds for notification about the progress of a task, inaccordance with one embodiment of the invention.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

The various embodiments of this invention is prospective inventionprovides a generic user interface for the user to define an area of thescreen as a progress indicator. A threshold is defined by the user. Whenthis threshold is reached, a notification can be sent by SMS, email,instant message, and the like. For example, consider Alice who juststarted installing a middleware product on her computer. She realizesthat the current progress indicator will take at least an hour tocomplete, so she decides to visit the company library. Before leaving,she defines an area of the computer screen that is the progressindicator for the software install. She also specifies that she shouldbe notified by SMS when the progress indicator gets to 90%. Alice goesto the library. Seventy minutes later, she gets a text message on herphone that the install is 90% complete, so she heads back to her office.

The invention will be described below in further detail by way ofexample and with reference to a single task indicated by a single taskbar. However, as the skilled person in the art realizes, any number oftasks can be simultaneously monitored in a similar manner, so thevarious embodiments of the invention is not limited to a single task.

As shown in FIG. 2, a process for providing a notification to a userabout the progress of a task, in accordance with one embodiment of theinvention, starts by receiving a user input defining a progress bar tobe tracked (step 202). This can be done in a number of ways. In oneimplementation, the progress bar is identified by the user drawing aframe around the progress bar, using a drag-and-drop interface. Inanother implementation, the user simply clicks somewhere on the progressbar. In yet other implementations, the user can set a preference, beforethe actual download begins, as to when to be notified. This can be done,for example, through a drop-down menu or any other suitable userinterface element for setting preferences, as is known to those ofordinary skill in the art. The progress bar can be located anywhere onthe screen. FIG. 3 shows an example of a progress bar (302), which has apercentage value (304) (in this case 66%) showing how much of the taskhas been completed. As can be seen in FIG. 3, a user has identified theprogress bar (302) by drawing a frame (306) around the progress bar.

Next, a user input is received selecting a color of the progress bar anda color of the background (step 204). This is done to allow the processto distinguish the progress bar from the background, and thereby todistinguish completed progress from pending progress and to tell thesystem when a threshold is reached.

After selecting a color of the progress bar, the process receives a userinput selecting a threshold for notification (step 206). As can be seenin FIG. 3, in one implementation the threshold is selected by the userdrawing a line (308) across the progress bar frame (306) at a pointwhere the user would like to be notified. Assuming, for example, that ablue progress bar on a gray background was defined in step 204 above.After having defined the line (308) in step 206, the process knows thatwhen the blue color reaches the line (308), a notification should besent to the user. As can be seen in FIG. 3, the location of the line(308) corresponds to approximately when 80% of the task is done. Inother implementations, the user can provide a numerical value, forexample, 90%, in a frame similar to the progress value frame (304) inorder to indicate when a notification should occur.

Next, the process receives a user input selecting a notification type(step 208). The user selects any of a number of notification methodsthat are known to those of ordinary skill in the art, such as SMS,email, page, phone call, and so on. In some implementations, the user'spreferences can be saved so that the user does not have to select thenotification type every time the process is run, whereas in otherapplications, the user is requested to enter the notification method andthe corresponding email address, SMS address or telephone number forevery desired notification.

Finally, the process tracks the progress bar and when the selectedthreshold is reached, the process notifies the user using the selectednotification method (step 210), which ends the process.

As the skilled person realizes, the various embodiments of the inventioncan be implemented in a variety of ways. For example, the process can beimplemented separately in each application that presents a progress bar.Alternatively, the process can also be implemented as a part of anoperating system, so that the user can simply click the right button ofhis mouse on a progress bar and get the option of subscribing to aprogress indicator threshold. In yet another alternative, the progressindicator subscription process can be implemented as part of a graphicaluser interface toolkit (e.g., a toolbar to be installed in a webbrowser). The various implementations of the invention described hereincan be utilized essentially in every situation where there is a need fora user to be notified when a task has been completed.

In some embodiments, when multiple tasks (e.g., tasks A, B and C) areunderway, the user can set notifications to occur, for example, whenboth task A and task B have reached 80% of being complete, or when taskA and task Be are complete and task C has reached 90%, or any otherpossible combination of tasks and threshold values.

The invention can take the form of an entirely hardware embodiment, anentirely software embodiment or an embodiment containing both hardwareand software elements. In a preferred embodiment, the invention isimplemented in software, which includes but is not limited to firmware,resident software, microcode, etc.

Furthermore, the invention can take the form of a computer programproduct accessible from a computer-usable or computer-readable mediumproviding program code for use by or in connection with a computer orany instruction execution system. For the purposes of this description,a computer-usable or computer readable medium can be any apparatus thatcan contain, store, communicate, propagate, or transport the program foruse by or in connection with the instruction execution system,apparatus, or device.

The medium can be an electronic, magnetic, optical, electromagnetic,infrared, or semiconductor system (or apparatus or device) or apropagation medium. Examples of a computer-readable medium include asemiconductor or solid state memory, magnetic tape, a removable computerdiskette, a random access memory (RAM), a read-only memory (ROM), arigid magnetic disk and an optical disk. Current examples of opticaldisks include compact disk-read only memory (CD-ROM), compactdisk-read/write (CD-R/W) and DVD.

A data processing system suitable for storing and/or executing programcode will include at least one processor coupled directly or indirectlyto memory elements through a system bus. The memory elements can includelocal memory employed during actual execution of the program code, bulkstorage, and cache memories which provide temporary storage of at leastsome program code in order to reduce the number of times code must beretrieved from bulk storage during execution.

Input/output or I/O devices (including but not limited to keyboards,displays, pointing devices, etc.) can be coupled to the system eitherdirectly or through intervening I/O controllers.

Network adapters may also be coupled to the system to enable the dataprocessing system to become coupled to other data processing systems orremote printers or storage devices through intervening private or publicnetworks. Modems, cable modem and Ethernet cards are just a few of thecurrently available types of network adapters.

A number of implementations of the invention have been described.Nevertheless, it will be understood that various modifications may bemade without departing from the spirit and scope of the invention. Forexample, the above example has focused on how to notify a single user,but it should be clear that any number of users could be notified usingany variation of the above communication means. The progress bar hasbeen described with reference to a particular color selected by a user,but it should be clear that any other type of indication could be usedin alternative embodiments, such as a particular pattern selected by auser. The progress indicator does not have to be a rectangular progressbar, but can be any type of visual indicator capable of indicatingproportional progress, such as a pie chart progress indicator, forexample.

More then one threshold can also be set, so that the user receives afirst notification, for example, when 50% of the task is done, and asecond notification, for example, when 90% of the task is done. Thevarious embodiments described above have been described in the contextof a computer, but it should be clear that the same principles can beapplied to any other type of digital processing device capable ofrunning applications, such as a personal digital assistant (PDA),cellular telephone, television set, and so on.

The principles described above can be applied to any task that has anassociated wait time, and for which the user wishes to be notified whena specific amount of time has passed or the task has reached apredefined state. In some implementations, other events can be triggeredinstead of, or in addition to, a user notification. For example, in somecases it may be desirable to start a second download after a firstdownload has completed or almost completed, so the user may define othersuch tasks as a result of a task being completed. Accordingly, otherembodiments are within the scope of the following claims.

The invention claimed is:
 1. A computer-implemented method for notifyinga user about the progress of a task, comprising: receiving a user inputadding a visible mark on an application-independent progress bar,wherein the progress bar indicates the progress of a task performedunder the control of a computer, and wherein the visible mark representsa first selected threshold; and in response to a determination that theprogress of the task being performed under the control of the computerhas reached the first selected threshold, sending a notification to auser, wherein the determination is performed by detecting when the pointon the progress bar at which the visible mark is added changes colors.2. The method of claim 1, wherein the task is selected from one or moreof: downloading a file, installing a software program component,transferring a file, and loading a file.
 3. The method of claim 1,wherein the notification includes one or more of: a short messageservice text message, an email, a web page, an instant message, and atelephone call.
 4. The method of claim 3, further comprising: receivinga user input selecting one or more desired notification types.
 5. Themethod of claim 1, further comprising: in response to a determinationthat the progress of the task being has reached a second selectedthreshold, sending a second notification to a user.
 6. The method ofclaim 1, wherein sending a notification includes: sending a notificationto a device that is different from the device on which the task is beingperformed.
 7. The method of claim 1, further comprising: in response toa determination that the progress of a task being performed under thecontrol of the computer has reached the first selected threshold,starting a different task under control of the computer.
 8. A computerprogram product for notifying a user about the progress of a task, thecomputer program product comprising a non-transitory computer readablestorage medium having program code embodied therewith, the program codebeing executable by a processor to: receive a user input adding avisible mark on an application-independent progress bar, wherein theprogress bar indicates the progress of a task performed under thecontrol of a computer, and wherein the visible mark represents a firstselected threshold; and send a notification to the user, in response toa determination that a progress of the task being performed under thecontrol of the computer has reached a first selected threshold, whereinthe determination is performed by detecting when the point on theprogress bar at which the visible mark is added changes colors.
 9. Thecomputer program product of claim 8, wherein the task is selected fromone or more of: downloading a file, installing a software programcomponent, transferring a file, and loading a file.
 10. The computerprogram product of claim 8, wherein the notification includes one ormore of: a short message service text message, an email, a web page, aninstant message, and a telephone call.
 11. The computer program productof claim 10, further comprising program code executable by the processorto: receive a user input selecting one or more desired notificationtypes.
 12. The computer program product of claim 8, further comprisingprogram code executable by the processor to: sending a secondnotification to a user, in response to a determination that the progressof the task being has reached a second selected threshold.
 13. Thecomputer program product of claim 8, wherein sending a notificationincludes: sending a notification to a device that is different from thedevice on which the task is being performed.
 14. The computer programproduct of claim 8, further comprising program code executable by theprocessor to: start a different task under control of the computer, inresponse to a determination that the progress of a task being performedunder the control of the computer has reached the first selectedthreshold.
 15. A system for notifying a user about the progress of atask, comprising: a processor; a memory coupled to the processor,wherein the memory contains instructions causing the processor to:receive a user input adding a visible mark on an application-independentprogress bar, wherein the progress bar indicates the progress of a taskperformed under the control of a computer, and wherein the visible markrepresents a first selected threshold; and send a notification to theuser, in response to a determination that a progress of the task beingperformed under the control of the computer has reached a first selectedthreshold, wherein the determination is performed by detecting when thepoint on the progress bar at which the visible mark is added changescolors.